using System.Collections.Generic;
using CreditoAutorizado.Dados.Entidades;
using NHibernate;

namespace CreditoAutorizado.CamadaAcessoDadosNH
{
    
    public class RepositorioComentario
    {
        public Comentario Inserir(Comentario comentario)
        {
            GerenciadorBD.Instance.SessaoAtual().Save(comentario);
            return comentario;
        }

        public Comentario Atualizar(Comentario comentario)
        {
            Comentario tmpComentario = ObterPorId(comentario.ComentarioId);

            tmpComentario.DataComentario = comentario.DataComentario;
            tmpComentario.Descricao = comentario.Descricao;
            tmpComentario.Usuario = comentario.Usuario;

            GerenciadorBD.Instance.SessaoAtual().Update(tmpComentario);
            return tmpComentario;
        }

        public void Excluir(Comentario comentario)
        {
            GerenciadorBD.Instance.SessaoAtual().Delete(comentario);
        }

        public IList<Comentario> ObterTodos()
        {
            ICriteria criteria = GerenciadorBD.Instance.SessaoAtual().CreateCriteria(typeof(Comentario));
            return criteria.List<Comentario>() as List<Comentario>;
        }

        public Comentario ObterPorId(int id)
        {
            return GerenciadorBD.Instance.SessaoAtual().Get<Comentario>(id);
        }
    }
}